﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="CheckinEvent.cs" company="Jim Liddell">
//   Copyright © Jim Liddell. All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace TeamBuildBunny
{
    #region Usings

    using System.Xml.Serialization;

    #endregion

    /// <summary>
    /// Encapulates information about a checkin event.
    /// </summary>
    public class CheckinEvent : EventBase
    {
        #region Properties

        /// <summary>
        /// Gets or sets a value indicating whether all the changes are included.
        /// </summary>
        public bool AllChangesIncluded { get; set; }

        /// <summary>
        /// Gets or sets the artifacts.
        /// </summary>
        [XmlArrayItem("Artifact")]
        public object[] Artifacts { get; set; }

        /// <summary>
        /// Gets or sets the checkin information.
        /// </summary>
        [XmlArrayItem("CheckinInformation")]
        public object[] CheckinInformation { get; set; }

        /// <summary>
        /// Gets or sets the checkin notes.
        /// </summary>
        [XmlArrayItem("CheckinNote")]
        public object[] CheckinNotes { get; set; }

        /// <summary>
        /// Gets or sets the comment.
        /// </summary>
        public string Comment { get; set; }

        /// <summary>
        /// Gets or sets the committer.
        /// </summary>
        public string Committer { get; set; }

        /// <summary>
        /// Gets or sets the content title.
        /// </summary>
        public string ContentTitle { get; set; }

        /// <summary>
        /// Gets or sets the creation date.
        /// </summary>
        public string CreationDate { get; set; }

        /// <summary>
        /// Gets or sets the notice.
        /// </summary>
        public string Notice { get; set; }

        /// <summary>
        /// Gets or sets the number.
        /// </summary>
        public int Number { get; set; }

        /// <summary>
        /// Gets or sets the owner.
        /// </summary>
        public string Owner { get; set; }

        /// <summary>
        /// Gets or sets the policy failures.
        /// </summary>
        [XmlArrayItem("PolicyFailure")]
        public object[] PolicyFailures { get; set; }

        /// <summary>
        /// Gets or sets the policy override comment.
        /// </summary>
        public string PolicyOverrideComment { get; set; }

        #endregion
    }
}